package edu.cibertec.sicsolutions.vfs.dao.votacion.ibatis;
import java.util.List;
import java.util.Map;

import edu.cibertec.sicsolutions.exception.DaoException;
import edu.cibertec.sicsolutions.vfs.dao.votacion.ConsolidadoDao;
import edu.cibertec.sicsolutions.vfs.domain.votacion.Consolidado;
import edu.cibertec.sicsolutions.vfs.spring.SpringIbatisBase;

/**
 * Data Access Object Implementation of table CONSOLIDADO 
 * @author enrique.vargas
 *
 */
public class ConsolidadoDaoImpl extends SpringIbatisBase implements ConsolidadoDao {	

	public Consolidado getConsolidadoByPk(Consolidado consolidado) throws DaoException{
		try{
			return (Consolidado)queryForObject("getConsolidadoByPk", consolidado);
		} catch(Exception e){
			log.error(e.getMessage(), e);
			throw new DaoException(e.getMessage(), e);
		}		
	}
	
	public void insertConsolidado(Consolidado consolidado) throws DaoException{
		try{
			insert("insertConsolidado", consolidado);
		} catch(Exception e){
			log.error(e.getMessage(), e);
			throw new DaoException(e.getMessage(), e);
		}		
	}
	
	public void updateConsolidado(Consolidado consolidado) throws DaoException{		
		try{
			update("updateConsolidado", consolidado);
		} catch(Exception e){
			log.error(e.getMessage(), e);
			throw new DaoException(e.getMessage(), e);
		}
	}
	
	public void updateConsolidadoByMap(Map map) throws DaoException{		
		try{
			update("updateConsolidadoByMap", map);
		} catch(Exception e){
			log.error(e.getMessage(), e);
			throw new DaoException(e.getMessage(), e);
		}
	}
	
	public void deleteConsolidadoByPk(Consolidado consolidado) throws DaoException{		
		try{
			delete("deleteConsolidadoByPk", consolidado);
		} catch(Exception e){
			log.error(e.getMessage(), e);
			throw new DaoException(e.getMessage(), e);
		}
	}
	
	public Consolidado[] findConsolidadoByClass(Consolidado consolidado) throws DaoException{
		try{
			List list = queryForList("findConsolidadoByClass", consolidado);
			return (Consolidado[])list.toArray(new Consolidado[list.size()]);
		} catch(Exception e){
			log.error(e.getMessage(), e);
			throw new DaoException(e.getMessage(), e);
		}
	}

	public Consolidado[] resultConsolidadoForResultado() throws DaoException {
		try{
			List list = queryForList("resultConsolidadoForResultado");
			return (Consolidado[])list.toArray(new Consolidado[list.size()]);
		} catch(Exception e){
			log.error(e.getMessage(), e);
			throw new DaoException(e.getMessage(), e);
		}
	}

	public Consolidado[] resultResultadoVotacion() throws DaoException {
		try{
			List list = queryForList("resultResultadoVotacion");
			return (Consolidado[])list.toArray(new Consolidado[list.size()]);
		} catch(Exception e){
			log.error(e.getMessage(), e);
			throw new DaoException(e.getMessage(), e);
		}
	}
}